import type { ElementType, LegacyRef } from 'react';
import type { AnimationEnum, ColorEnum, SizeEnum, Transition } from '../common';

export interface MessageOptions {
  /**
   * 图标
   */
  icon?: boolean;
  /**
   * 隐藏
   */
  hidden?: boolean;
  /**
   * 显示
   */
  visible?: boolean;
  /**
   * 对齐方式
   */
  aligned?: 'center' | 'right';
  /**
   * 浮动
   */
  floating?: boolean;
  /**
   * 紧凑
   */
  compact?: boolean;
  /**
   * 附属
   */
  attached?: boolean | 'top' | 'bottom';
  /**
   * 类型
   */
  type?: 'warning' | 'info' | 'error' | 'negative' | 'success' | 'positive';
  /**
   * 颜色
   */
  color?: ColorEnum;
  /**
   * 尺寸大小
   */
  size?: SizeEnum;
  /**
   * 关闭
   */
  close?: boolean;
  /**
   * 关闭完成事件
   */
  onClosed?: (e?: MouseEvent) => void;
  /**
   * 过渡
   */
  transition?: AnimationEnum | Transition;
  /**
   * 转发 ref
   */
  forwardedRef?: LegacyRef<HTMLElement>;
}

export interface MessageHeaderOptions {
  /**
   * 转发 ref
   */
  forwardedRef?: LegacyRef<HTMLElement>;
}

export interface MessageListOptions {
  /**
   * 标签或组件名称
   * @default ul
   */
  as?: ElementType;
  /**
   * 转发 ref
   */
  forwardedRef?: LegacyRef<HTMLElement>;
}

export interface MessageItemOptions {
  /**
   * 标签或组件名称
   * @default li
   */
  as?: ElementType;
  /**
   * 转发 ref
   */
  forwardedRef?: LegacyRef<HTMLElement>;
}

export interface MessageContentOptions {
  /**
   * 转发 ref
   */
  forwardedRef?: LegacyRef<HTMLElement>;
}
